冬来冬往的博客

Git 突然连不上

2023-07-09

今天执行 git pull 命令,突然要求必须输入密码,开始以为是公钥和GitHub上的不匹配了。后来经过了以下几个步骤的操作确认
一、重新生成密钥对,并将公钥配置到GitHub中,发现不起作用
这个过程搞清楚了要想本地免密执行Git命令,只需要配置密钥就可以,步骤如下:
1、在 ~/.ssh 目录下执行生成密钥,执行完之后,会生成两个文件 id_ed25519id_ed25519.pub两个文件

1
$ ssh-keygen -t ed25519 -C "[email protected]"

这里 your_email@example.com 可以是任意字符串,不一定必须是邮箱。
2、将 id_ed25519.pub的内容复制到 GitHub “Settings”->”SSH and GPG keys”下面
3、测试链接

1
$ ssh -T [email protected]

如果成功将收到以下消息

Hi xxx! You’ve successfully authenticated, but GitHub does not provide shell access.

很可惜,我没有收到这个消息,配置完之后,还让我输入密码。

二、后来发现输入密码竟然也不能 pull,所以应该不是密钥的问题。
也确认过密码肯定是正确的,后来发现 git clone 竟然也不能执行
用 https 协议

1
$ git clone https://github.com/xxx.git

fatal: unable to access ‘https://github.com/xxx.git/‘: Failed to connect to github.com port 443 after 27 ms: Connection refused

用 ssh 协议

1
$ git clone [email protected]:xxx.git

Received disconnect from 127.0.0.1 port 22:2: Too many authentication failures
Disconnected from 127.0.0.1 port 22
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

三、最后根据这里的方案解决了
https://stackoverflow.com/questions/58816676/failed-to-connect-to-github-com-port-443-connection-timed-out-when-pushing-to
在 ~/.ssh/config 中配置如下内容

1
2
3
Host github.com
Hostname ssh.github.com
Port 443

这个配置我让 ChatGPT 解释了一下

这样的配置是为了通过 SSH 协议访问 GitHub,即使用 SSH 代替 HTTPS 进行连接。这里的配置实现了以下几点:

  1. Host github.com:这是一个主机别名,将 github.com 与后续配置关联起来。

  2. Hostname ssh.github.com:这是实际要连接的主机名。通过将 github.com 的主机名更改为 ssh.github.com,你将指示 SSH 使用 GitHub 提供的专用 SSH 服务。

  3. Port 443:这是 SSH 连接使用的端口号。将端口号设置为 443 是因为 GitHub 的 SSH 服务在该端口上监听。

通过这些配置,当你使用 git clonegit pull 或其他 Git 操作时,Git 将使用 SSH 协议通过 ssh.github.com 和端口 443 连接到 GitHub。这样可以避免了 HTTPS 连接的限制或问题,并允许使用 SSH 密钥进行身份验证。

值得注意的是,这个配置只对 github.com 生效,对其他主机不会产生影响。你仍然可以使用 HTTPS 连接访问其他网站或 Git 仓库。

所以最终也只能使用 ssh 协议,例如如果关联的是 https 的链接,还是无法生效,所以如果其他仓库还有问题,需要确认下关联的是 https的协议,还是ssh协议。

1
2
3
$ git remote -v
origin [email protected]:xxx.git (fetch)
origin [email protected]:xxx.git (push)

扫描二维码,分享此文章